home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / quotaio_v2.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  3KB  |  80 lines

  1. /*
  2.  *    Definitions of structures for vfsv0 quota format
  3.  */
  4.  
  5. #ifndef _LINUX_QUOTAIO_V2_H
  6. #define _LINUX_QUOTAIO_V2_H
  7.  
  8. #include <linux/types.h>
  9. #include <linux/quota.h>
  10.  
  11. /*
  12.  * Definitions of magics and versions of current quota files
  13.  */
  14. #define V2_INITQMAGICS {\
  15.     0xd9c01f11,    /* USRQUOTA */\
  16.     0xd9c01927    /* GRPQUOTA */\
  17. }
  18.  
  19. #define V2_INITQVERSIONS {\
  20.     0,        /* USRQUOTA */\
  21.     0        /* GRPQUOTA */\
  22. }
  23.  
  24. /*
  25.  * The following structure defines the format of the disk quota file
  26.  * (as it appears on disk) - the file is a radix tree whose leaves point
  27.  * to blocks of these structures.
  28.  */
  29. struct v2_disk_dqblk {
  30.     __le32 dqb_id;        /* id this quota applies to */
  31.     __le32 dqb_ihardlimit;    /* absolute limit on allocated inodes */
  32.     __le32 dqb_isoftlimit;    /* preferred inode limit */
  33.     __le32 dqb_curinodes;    /* current # allocated inodes */
  34.     __le32 dqb_bhardlimit;    /* absolute limit on disk space (in QUOTABLOCK_SIZE) */
  35.     __le32 dqb_bsoftlimit;    /* preferred limit on disk space (in QUOTABLOCK_SIZE) */
  36.     __le64 dqb_curspace;    /* current space occupied (in bytes) */
  37.     __le64 dqb_btime;    /* time limit for excessive disk use */
  38.     __le64 dqb_itime;    /* time limit for excessive inode use */
  39. };
  40.  
  41. /*
  42.  * Here are header structures as written on disk and their in-memory copies
  43.  */
  44. /* First generic header */
  45. struct v2_disk_dqheader {
  46.     __le32 dqh_magic;    /* Magic number identifying file */
  47.     __le32 dqh_version;    /* File version */
  48. };
  49.  
  50. /* Header with type and version specific information */
  51. struct v2_disk_dqinfo {
  52.     __le32 dqi_bgrace;    /* Time before block soft limit becomes hard limit */
  53.     __le32 dqi_igrace;    /* Time before inode soft limit becomes hard limit */
  54.     __le32 dqi_flags;    /* Flags for quotafile (DQF_*) */
  55.     __le32 dqi_blocks;    /* Number of blocks in file */
  56.     __le32 dqi_free_blk;    /* Number of first free block in the list */
  57.     __le32 dqi_free_entry;    /* Number of block with at least one free entry */
  58. };
  59.  
  60. /*
  61.  *  Structure of header of block with quota structures. It is padded to 16 bytes so
  62.  *  there will be space for exactly 21 quota-entries in a block
  63.  */
  64. struct v2_disk_dqdbheader {
  65.     __le32 dqdh_next_free;    /* Number of next block with free entry */
  66.     __le32 dqdh_prev_free;    /* Number of previous block with free entry */
  67.     __le16 dqdh_entries;    /* Number of valid entries in block */
  68.     __le16 dqdh_pad1;
  69.     __le32 dqdh_pad2;
  70. };
  71.  
  72. #define V2_DQINFOOFF    sizeof(struct v2_disk_dqheader)    /* Offset of info header in file */
  73. #define V2_DQBLKSIZE_BITS    10
  74. #define V2_DQBLKSIZE    (1 << V2_DQBLKSIZE_BITS)    /* Size of block with quota structures */
  75. #define V2_DQTREEOFF    1        /* Offset of tree in file in blocks */
  76. #define V2_DQTREEDEPTH    4        /* Depth of quota tree */
  77. #define V2_DQSTRINBLK    ((V2_DQBLKSIZE - sizeof(struct v2_disk_dqdbheader)) / sizeof(struct v2_disk_dqblk))    /* Number of entries in one blocks */
  78.  
  79. #endif /* _LINUX_QUOTAIO_V2_H */
  80.